use super::crypt_types::{CRYPT_EVENT_TYPE, CRYPT_ALGO_TYPE, CRYPT_EAL_LibCtx};
use crate::bsl::bsl_params::BSL_Param;
pub const CRYPT_CMVP_INTEGRITY_TEST: CRYPT_CMVP_SELFTEST_TYPE = 0;
pub const CRYPT_CMVP_KAT_TEST: CRYPT_CMVP_SELFTEST_TYPE = 1;
pub const CRYPT_CMVP_RANDOMNESS_TEST: CRYPT_CMVP_SELFTEST_TYPE = 2;
pub const CRYPT_CMVP_MAX: CRYPT_CMVP_SELFTEST_TYPE = 3;
pub type CRYPT_CMVP_SELFTEST_TYPE = ::std::os::raw::c_uint;
pub const CRYPT_CTRL_SET_SELFTEST_FLAG: CRYPT_CMVP_RandCtrl = 256;
pub type CRYPT_CMVP_RandCtrl = ::std::os::raw::c_uint;
pub type CRYPT_EAL_CMVP_LogFunc = ::std::option::Option<
    unsafe extern "C" fn(oper: CRYPT_EVENT_TYPE, type_: CRYPT_ALGO_TYPE, id: i32, err: i32),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct EAL_SelftestCtx {
    _unused: [u8; 0],
}
pub type CRYPT_SelftestCtx = EAL_SelftestCtx;
unsafe extern "C" {
    pub fn CRYPT_CMVP_SelftestNewCtx(
        libCtx: *mut CRYPT_EAL_LibCtx,
        attrName: *const ::std::os::raw::c_char,
    ) -> *mut CRYPT_SelftestCtx;
}
unsafe extern "C" {
    pub fn CRYPT_CMVP_GetVersion(ctx: *mut CRYPT_SelftestCtx) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
    pub fn CRYPT_CMVP_Selftest(ctx: *mut CRYPT_SelftestCtx, param: *const BSL_Param) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_CMVP_SelftestFreeCtx(ctx: *mut CRYPT_SelftestCtx);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __locale_data {
    pub _address: u8,
}
